\documentstyle[a4]{article}
\setlength{\textwidth}{6in}
\setlength{\textheight}{8in}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
\setlength{\topmargin}{-0.5in}

\begin{document}
\title{EKED-M1 User Manual}
\author{Steven M. Eker (Steven.Eker@brunel.ac.uk)}
\date{February 19, 1995}
\maketitle

\section{Introduction}

EKED-M1 is a Editor/Librarian for the the Korg M1/M1R synthesizers
which runs on Atari 680x0 computers. Its main features are

\begin{itemize}
\item Manages up to 10 banks at a time (memory permitting).
\item Editor windows for programs, combinations, global data and drum kits.
\item Graphic display for envelope shapes.
\item Live editing if Korg M1 connected.
\item Drag \& drop copying of whole banks, programs, combinations,
effects and global data.
\item Auditioning of multisound samples if Korg M1 connected.
\item Virtual keyboard for live editing on Korg M1R.
\item Real time magnifying glass
\end{itemize}

\section{Preliminaries}

EKED-M1 will run in any screen mode however as some of the dialog boxes
are more than 40 characters wide, a screen mode 80 characters wide or more
is recommended.

EKED-M1 recognises both mouse buttons --- for most things either can be used;
however the left mouse button automatically tops the window that is clicked
on, where as the right mouse button allows you to work on a background window
without topping it.

At start up, values that are not handled by check boxes or radio buttons
are changed by `rolling' --- click on the value and drag the mouse while
holding the mouse button down. Moving right or down increases the value,
moving left or up decreases the value.
Should you find yourself running out of screen, hold down both mouse buttons to
move the mouse without changing the value.
If you don't like this behaviour see the `Values' dialog under the `Options'
menu.

At start up EKED-M1 assumes that your Korg M1 has a two way connection to your
Atari's built in MIDI ports and has SYSEX enabled and its global channel
set to 1. If any of these thing fail to be true you will get loads of
alerts complaining that the Korg M1 is not responding when you try to
do things.
In this case you should go to the `MIDI' dialog under the `Options'
menu and either set the correct MIDI channel or turn live editing off.

EKED-M1 works through the Korg M1's edit buffer whenever possible so
you only ever have to switch off the protection of your Korg M1's
internal bank or RAM card when you want to transfer a whole bank of data
to it.

\section{The icon window}

This is the one window that exists at start up. It contains icons for bank 0,
the Korg M1 and the RAM card. You can create new banks using the `New'
item under the `File' menu.
Clicking on a bank icon selects that bank and enables the menu items that
operate on banks.

To receive MIDI data from the Korg M1, drag either the Korg M1 icon or the
RAM card icon over a bank. This will bring up the the `BANK RECEIVE'
dialog which lets you select the source, destination and type(s) of data
to be received. Alternatively you can select a bank and use the `Receive'
item under the `File' menu.

To transmit MIDI data from to the Korg M1, drag a bank icon over either
the Korg M1 icon or the RAM card icon. This will bring up the the
`BANK TRANSMIT' dialog which lets you select the source, destination and type(s)
of data to be transmitted. Alternatively you can select a bank and use the
`Transmit' item under the `File' menu.

To open the global data editor for a given bank, double click on the
global box part of the banks icon. Alternatively you can select a bank and use
the `Global edit' item under the window menu.

To open a combination list window for a given bank, double click on the
combination box part of the banks icon. Alternatively you can select a bank and
use the `Combination list' item under the window menu.

To open a program list window for a given bank, double click on the program
box part of the banks icon. Alternatively you can select a bank and
use the `Program list' item under the window menu.

To copy one bank to another bank drag the source bank over the destination
bank. This will bring up the `BANK COPY' dialog which lets you
change your mind about source and destination and choose what type(s) of
data is to be copied. Alternatively you can select a bank and use the
`Copy' item under the `Bank' Menu.

Closing the icon window is one way to quit EKED-M1. You can also use the
`Quit' item under the `File' menu. In either case you get a chance to change
your mind.

\section{Other bank operations}

The `Open' item under the `File' menu loads a disk file into a bank and
the `Save as' item saves a bank in a named file. The `Save' item works
the same as `Save as' except that if the bank has ever been loaded
from a disk file then the name of the last such file is used rather
than bringing up a file selector.
The file format used is raw SYSEX dumps, so you can load data from a dump
made using a sequencer. The SYSEX loading code is smart enough to
find SYSEX data in some non-raw formats such as MIDIfiles.
Only non-zero parts of the bank are saved - if you bank contains
only zero-ed out combinations for example, they will not be saved.

The `Print' item under the `File' menu brings up the `BANK PRINT'
dialog that allows you to print out
a listing of the names of the combinations and/or programs in a bank.
They are normally printed out in tables with headers, but if you select
the `one per line' check box, they listed in a raw, one combination (or
program) per line format that may be useful for certain sequencers.
Listings may be sent to the printer or to a file.

The `Flip' item under the `Bank' menu brings up the `BANK FLIP' dialog
which allows you to flip the combinations
in the a from referencing programs in the RAM card to those in the
internal bank, or visa versa.

The `Erase' item under the `Bank' menu brings up the `BANK ERASE' dialog
which allows you to erase the programs, combinations or global data in
a bank. It's main use is for erasing programs, since zero-ed out
programs are special (see combination copying).

%%%%%

\section{The combination and program list windows}

These windows contain a list of the names of the combinations and programs in
a bank. The operations available for individual combinations/programs are
only available by clicking in these windows and not from the menus.

To audition a combination/program, single click on its name. The Korg M1
will be switched to combination/program mode as appropriate and set to the
selected combination/program number. The selected
combination/program will then be transmitted to the edit buffer
and can be played as normal.

To copy a combination/program, click on its name and drag it to where
you want to copy it (possibly to another window). This will bring
up an appropriate dialog which will give you the chance to change the
source and/or destination and select what is to be copied.

When copying a combination between banks you also have the option of copying
the programs that it references across with it. This is done in a smart way -
programs that already exist in the destination bank are not copied and the
programs that are copied are placed in the lowest numbered zero-ed out
program locations in the destination bank. If the are insufficient zero-ed
out locations the you will get an alert and the copy operation will be
abandoned.

When copying a program within the same bank you have an option of changing
all the combinations that reference it so that they reference its new location.
When you drag a program to a combination list window or vice versa you may only
copy the effects associated with it.

To edit a combination/program, double click on its name to bring up the
appropriate editor.

\section{The combination and program editors}

You may only have one editor of each type active. Whenever you click in
one of these editor windows, the Korg M1 will be put into the appropriate
edit mode (if it wasn't already) and you can play the combination/program
being edited. When you change values in the editor, the new value are
transmitted to the Korg M1 as soon as you release the mouse button so you
can hear the effect of the change you made.

You can save your changes back to the bank by clicking on the `save' button
in the editor window. You can reset the edited sound back to its original
state by clicking on the `reset' button and you can compare the original
and edited versions by clicking on the `compare' button. This last
feature is independent of the Korg M1's compare facility which should not be
used while EKED-M1 is running.

In the program editor, envelopes can be change either by editing their numerical
value or by dragging the markers on the envelop graphs. Also the values
in the `OSC 2 PITCH', `OSC 2 FILTER' and `OSC 2 AMP' sections
can only be edited if the program mode is set to `DOUBLE'.

If you try to close one of these editor windows without saving your changes
you are given a change to save the changes or cancel the close operation.

\section{The global and drum kit editors}

You may only have one global editor active at a time.
The global editor does not support live editing simply because the
Korg M1 SYSEX implementation does not support parameter changes for global
data. The `save' and `reset' buttons work as for the combination and
program editor. The `KIT 1', `KIT 2', `KIT 3' and `KIT 4' buttons
bring up drum kit editors for each of the four drum kits. These are
not really full editors in their own right but extensions of the global editor
and they do not have their own `save' and `reset' buttons.
They are automatically closed when the global editor window is closed.

\section{The multisound and drum sound windows}

These are windows that can be called up from the `windows' menu and display
the names of the 100 multisounds and 44 drum sounds built in to
the Korg M1. They are really exist has hooks for future development
of EKED-M1, although in version 1.0 the multisound window can be used
to audition the raw sample corresponding to the multisound by clicking
on its name.

\section{The virtual keyboard}

This window can be called up from the `windows' menu. It displays a five
octave keyboard which can be used to transmit MIDI note on and note off events
by clicking on the appropriate notes. The notes are played at velocity 64
unless the shift key is held down in which case the notes are played at
velocity 127. There is the usual short delay between clicking on a note
and something happening due to GEM checking for a double click. Because
this is annoying with the virtual keyboard, when you hold down the `ALT'
(or shift) key and click on the virtual keyboard it grabs control
off the mouse, eliminating further delays until the key(s) are released.

The virtual keyboard is most useful when you are using a Korg M1R
and don't have a MIDI merge box to merge note events from a MIDI
keyboard into the SYSEX stream.

\section{Miscellaneous features}

If you hold down the control key and click on the mouse you bring up the
real time magnifying glass. This feature may not work correctly
if you are using a 3rd party graphics card which uses a non-Atari raster
format for its VDI blitting.

The `VALUE OPTIONS' dialog (`Values' item under the `Options' menu)
allows you to use the left and right mouse buttons to increment and
decrement value as opposed to `rolling' them. You can also set the point
size of the text used in the various list windows.

The `DIALOG ENABLE' dialog enables you to disable certain dialogs. When
a dialog is disabled the operation proceeds as if the `OK' button was clicked
with the current settings, without displaying the dialog.
This is especially useful for the `COMBINATION COPY' and
`PROGRAM COPY' dialogs when you are dragging combinations and programs about.

Because many different windows can potentially control the Korg M1 and its
edit buffer, EKED-M1 keeps track of which window currently has control
and ensures that the Korg M1 mode and edit buffer contents are changed
appropriately whenever control changes to another window.
If you change the Korg M1 mode or combination/program number
manually, EKED-M1 can get confused.

The keyboard equivalents are not hardwired into the program but are
determined at run-time by looking at the menu resource tree in eked-m1.rsc.
Thus if you don't like the current ones you can change them with a resource
editor.

\section*{Acknowledgements}

EKED-M1 was compiled using the Free Software Foundation's GNU C compiler and
tools. The resources were built using Hisoft's WERCS.

\end{document}

